package com.xjy.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.persistence.Id;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 个人借款信息对象 sys_loan
 *
 * @author xjy
 * @date 2022-02-10
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sys_loan")
public class SysLoan implements Serializable {

	private static final long serialVersionUID = 1L;

	/** 个人借款ID */
	@TableId(value = "id")
	@Id
	private Long id;

	/** 项目ID */
	private Long projId;

	/** 项目名称 */
	private String projName;

	/** 合同名称 */
	private String contractName;

	/** 合同ID */
	private Long contractId;

	/** 结算项目名称 */
	private String resultContractName;

	/** 结算项目ID */
	private Long resultContractId;


	/** 科目ID */
	private Long budgetId;
	/** 科目名称 */
	private String budgetName;

	/** 个人借款支付单据编号 */
	private String resultContractNo;

	/** 个人借款归还单据编号 */
	private String resultContractNoBack;

	/** 个人借款冲销单据编号 */
	private String resultContractNoCharge;

	/** 个人借款类别：0：支付借款，1：归还借款 */
	private Integer loanType;

	/** 借款人:对内借款，借款人从内部人员中取 */
	private String borrower;

	/** 借款人id：关联个人ID支持费用报销的联查预付款~ */
	private Long borrowerId;

	/** 个人借款事由摘要 */
	private String abstracted;

	/** 个人借款发生金额 */
	private BigDecimal amount;

	/** 支付之后进行冲抵/归还操作，剩余的金额 */
	private BigDecimal balance;

	/** 冲销状态0：未冲销；1：已冲销 */
	private Integer writeoffStatus;

	/** 经办人 */
	private String handler;

	/** 经办人id */
	private Long handlerId;

	/** 个人借款发生日期 */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/** 修改时间 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;

	/** 支付方式0：现金，1：银行（默认：银行) */
	private Integer payType;

	/** 支付账户账户ID */
	private Long payAccountId;

	/** 支付账户名称 */
	private String payAccountName;

	/** 支付账户开户行 */
	private String payAccountBank;

	/** 支付账户号码 */
	private String payAccountNo;

	/** 票据影像名称 */
	private String imageName;

	/** 票据影像：存文件路径 */
	private String image;

	/** 上传时间 */
	private Date uploadTime;

	/** 备注 */
	private String remark;

	/** 预留字段1 */
	private String reserveOne;

	/** 预留字段2 */
	private String reserveTwo;

	/** 预留字段3 */
	private String reserveThree;

	/**对方银行账户名称*/
	private String colBankName;


	/**对方银行账户开户行*/
	private String colBank;

	/**对方银行账户号码*/
	private String colBankNo;
	/** 审核状态 0：未审核（默认）；1：审核 */
	private Boolean auditStatus;

	/** 删除状态 0. 正常 1. 删除 */
	private Integer delFlag;
}
